Headers:
--------

Implemented:
static struct ffxext ffxextensionsCompressed[FFXEXT_COMPRESSED_COUNT] =
    {{ "\x01\x01\xB0\x09" , 4, 0, ".mt" }, // 0101B009
     { "\x01\x01\xC0\x0B" , 4, 0, ".mt" }, // 0101C00B
     { "\x90\x00\x01\x0B\x80\x03\x01\x02" , 8, 0, ".ffm" }, // 9000010B80030102 (c2)
     { "\x88\x00\x01\x0B\x80\x03\x01\x02" , 8, 0, ".ffm" }, // 8800010B80030102A00B (c1)
     { "\x90\x00\x01\x0A\x80\x03\x01" , 7, 0, ".ffm2" }, // 9000010A800301 (c2)
     { "\x88\x00\x01\x0A\x80\x03\x01" , 7, 0, ".ffm2" }, // 8800010A800301 (c1)
     { "\x90\x00\x01\x01\xC0\x07" , 6, 0, ".ffa" }, // 90000101C007 (c2)
     { "\x90\x00\x01\x01\xD0\x08" , 6, 0, ".ffa" }, // 90000101D008 (c2)
     { "\x88\x00\x01\x01\xA0\x07" , 6, 0, ".ffa" }, // 88000101A007 (c1)
     { "\x88\x00\x01\x01\xA8\x08" , 6, 0, ".ffa" }, // 88000101A808 (c1)
     { "\x01\x08\x80\x03\x01\x30" , 6, 0, ".bt" }, // 010880030130
     { "\x01\x07\x80\x03\x01" , 5, 0, ".bt7" } // 0107800301
    };

#define FFXEXT_UNCOMPRESSED_COUNT 6
static struct ffxext ffxextensionsUncompressed[FFXEXT_UNCOMPRESSED_COUNT] =
    {{ "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00" , 10, 0, ".mt" }, // 01000000 00000000 0000???? ???????? 14000000
     { "\x00\x00\x00\x00\x0B\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00" , 16, 0, ".ffm" }, // 00000000 0B000000 02000000 00000000
     { "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" , 12, 0, ".ffa" }, // 00000000 01000000 00000000
     { "\x08\x00\x00\x00\x30\x00\x00\x00" , 8, 0, ".bt" },  // 08000000 30000000
     { "\x07\x00\x00\x00\x20\x00\x00\x00" , 8, 0, ".bt7" }, // 07000000 20000000
     { "\x07\x00\x00\x00\x30\x00\x00\x00" , 8, 0, ".bt7" }  // 07000000 30000000
    };

Known:

ffm
basic header compressed (from 0x5) : 90 00 01 0B 80 03 01 02 C0 0B
basic header: 00000000 0B000000 02000000 00000000
              pos 0x68 : 77777777 77777777

ffa
basic header compressed (from 0x5) : 90 00 01 01 C0 07
basic header: 00000000 01000000 00000000 ???????? ???????? 77777777
????  basic : 00000000 08000000 00000000 ???????? ???????? 77777777
(0274 vs 3752 - head diff (01 vs 08), but data from 0x10 to 0x14A8 same)

movie
basic header (from 0xC) : 0000000303
(53 files, 53 movies in FFX?)

"menu"
basic header compressed (from 0x5) : 0101B009, 0101C00B  (last element index == 0)
basic header: 01000000 00000000 0000???? ???????? 14000000

"Menu2"
basic header: 01000000 ???????? ???????? 24000000

Monsters? compressed : 010880030130
        decompressed : 08000000 30000000
Monsters? compressed : 0107800301
        decompressed : 07000000 30000000
        decompressed : 07000000 20000000

sesep 
basic header compressed (from 0x5) : 
basic header: ??000000 10000000 ???????? ???????? 02000000 0C000000
              02000000 10000000 ???????? 00000000 02000000 0C000000
              03000000 10000000 ???????? ???????? 02000000 0C000000

(compressed head 1118 similar to 1091, but its not sesep)


Others, strings:
EV01, BGM, ELF, MAP, VS, FTCX, YNDT, WD



------------------------------------

some graphics:
--------------

4B width
4B height
8B zeros
1024B paletes
width*height B data
= filesize = width*height + 8B + 1024B

some graphic pack:
4B 0x01000000
4B count of records
8B zeros
[count] structs
  2B width
  2B height
  4B 0x08FFFFFF
  4B pointer to palette
  4B pointer to data

------------------------------------

Formats:
--------

monster/battle
4B  0x08 - pointer count? (there is 8 ptr, 8th is filesize)
4B[pointer count] - pointers, can be zero...
4B  0x30 - first ptr...


0x14  text ptr - index 4 (5th)
text - normal dlg

???
4B 0x07
4B  0x30/0x20 - first ptr...
-> no texts?


------------------

"Menu"
FFX misc text file format

basic header compressed (from 0x5) : 0101B009, 0101C00B  (last element index == 0)
basic header: 01000000 00000000 0000???? ???????? 14000000
from pos 0:
01000000 00000000 0000
2B []
Number_of_elements = last element index or count-1
Size_of_element
Size_of_header = (Number_of_elements+1) * Size_of_element
Start_pointer = 0x14

... Start_pointer + Size_of_header = Start_of_texts/Start_of_data
... there can be no texts/data
??? if Number_of_elements == 0 then Size_of_element == Size_of_header
    (one element)

??? if data present then first two bytes pointer to data section, from zero
    there may be more pointers in one header element (usually array at start?)
Text_Pointer 4B {2B text offset, 2B flags?}

------------------

"Menu2"
descript 01000000 ???????? ???????? 24000000
01000000
????????
4B
Pointer to some data  (pointer after text)
Pointer to some data  = 0x24
Pointer to some text? (text section, with pointers to texts)
Pointer to some data, near end file or end file...

Text section:   4B Pointers to texts/data, from file start
Section after:  8B (4B pointer from file start, 4B unknown)

------------------

VS
Voice stream
RAW ...

------------------

FFX scan text(section) file format

0x80B header (20B pointers, rest unknown)
from 0x80B scan text

header text:
20B  {2B=pointer 2B='flags'} [5]
(first pointer defines poinster array size)
- accending [i]<[i+1]
- pointer is from 0x80 (from text start)
- padded to be multiple 4 with 0xFF

-----------------